package com.cskaoyan.javase.array._3exception._4operation._1get;

/**
 * 获取数组元素的最值
 * @since 16:18
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    public static void main(String[] args) {
        int[] arr = {1, 2, 3, 4, 4, 5000, 4, 645, 6, 54, 6, -54, 64, 56,};
        int[] arr2 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
        System.out.println(getMaxValueByIntArr(arr));
        System.out.println(getMinValueByIntArr(arr));
        System.out.println(getAverageValueByIntArr(arr2));
    }

    // 获取int类型数组的最大值
    public static int getMaxValueByIntArr(int[] arr) {
        // 1.假设最大值是第一个元素
        int max = arr[0];
        // 2.遍历整个数组,依次比较,如果找到更大的元素,就替代成为新的最大值
        for (int ele : arr) {
            if (ele > max) {
                // 成为新的最大值
                max = ele;
            }
        }
        // 3.遍历完数组找到并返回最大值
        return max;
    }

    // 获取int类型数组的最小值
    public static int getMinValueByIntArr(int[] arr) {
        // 1.假设最小值是第一个元素
        int min = arr[0];
        // 2.遍历整个数组,依次比较,如果找到更小的元素,就替代成为新的最小值
        for (int i = 1; i < arr.length; i++) {
            if (arr[i] < min) {
                // 成为新的最小值
                min = arr[i];
            }
        }
        // 3.遍历完数组找到并返回最小值
        return min;
    }

    // 获取int类型数组的平均值
    public static double getAverageValueByIntArr(int[] arr) {
        // 1.遍历求和
        double sum = 0;
        for (int ele : arr) {
            sum += ele;
        }
        // 2.除以数组元素的个数,就是平均值
        return sum / arr.length;
    }
}
